package br.com.fafica.librarycourier.funcionario.control;

import br.com.fafica.librarycourier.RepositorioException;
import br.com.fafica.librarycourier.funcionario.model.CadastroFuncionario;
import br.com.fafica.librarycourier.funcionario.model.Funcionario;
import br.com.fafica.librarycourier.funcionario.model.FuncionarioJaCadastradoException;
import br.com.fafica.librarycourier.funcionario.model.FuncionarioNaoEncontradoException;
import br.com.fafica.librarycourier.funcionario.model.IRepositorioFuncionario;

public class ControladorFuncionario {
	
	private IRepositorioFuncionario RepositorioFuncionario;
	
	public ControladorFuncionario(IRepositorioFuncionario repositorioFuncionario){
		this.RepositorioFuncionario = RepositorioFuncionario;
	}
	
	public void cadastrar(Funcionario funcionario) throws FuncionarioJaCadastradoException, RepositorioException{
		CadastroFuncionario objCadastroFuncionario = new CadastroFuncionario(this.RepositorioFuncionario);
		objCadastroFuncionario.cadastrar(funcionario);
	}
	
	public void remover (String codigo) throws FuncionarioNaoEncontradoException, RepositorioException{
		CadastroFuncionario objCadastroFuncionario = new CadastroFuncionario(this.RepositorioFuncionario);
		objCadastroFuncionario.remover(codigo);
	}
	
	public Funcionario procurar(String codigo) throws FuncionarioNaoEncontradoException, RepositorioException{
		CadastroFuncionario objCadastroFuncionario = new CadastroFuncionario(this.RepositorioFuncionario);
		return objCadastroFuncionario.procurar(codigo);
	}
	
	public void atualizar (Funcionario funcionario) throws FuncionarioNaoEncontradoException, RepositorioException{
		CadastroFuncionario objCadastroFuncionario = new CadastroFuncionario(this.RepositorioFuncionario);
		objCadastroFuncionario.atualizar(funcionario);
	}

}
